# -*- coding: utf-8 -*-

'''eof
name:申请人学历
code:Education
tableName:
columnName:
groups:个人通用
dependencies:IC_DSJ_2D
type:常用指标
datasourceType:在线指标
description:
eof'''

import sys

reload(sys)
sys.setdefaultencoding('utf-8')

'''
申请人学历 
    提取个人征信报告-身份信息中的“学历”字段
'''
# def FormatData(tableName):
#     try:
#         icr = json.loads(IC[0]["icr"])[tableName]
#         return icr if isinstance(icr, list) and len(icr) > 0 else [{}]
#     except:
#         return [{}]
#
# def Education():
#     null_type_list = ['', None, 'null', 'Null', '/', ' ']
#     Edu_level = [u'研究生', u'大学本科（简称"大学"）', u'大学专科和专科学校（简称"大专"）',
#                  u'中等专业学校或中等技术学校'
#         ,u'技术学校',u'高中' ,u'初中' ,u'小学' ,u'文盲或半文盲' ,u'未知'  ]
#     try:
#         # 身份信息
#         ICRIdentity = FormatData("ICRIdentity")
#         if ICRIdentity == [{}] :
#             return u"缺失值"
#         # 学历
#         if ICRIdentity[0].get("EduLevel") not in null_type_list \
#                 and ICRIdentity[0].get("EduLevel") in Edu_level:
#             return ICRIdentity[0].get("EduLevel")
#         else:
#             return u"缺失值"
#     except:
#         return u'缺失值'
#
# result = Education()

def PIMFormat():
    # 身份信息
    try:
        data = IC_DSJ_2D.get("data").get("PIM")[0].get("PB01")[0].get("PB01A")
        if data is None:
            return [{}]
        else:
            return data
    except:
        return [{}]

null_type_list = ['', ' ', None, 'null', 'Null', 'NULL', '/', '-', '--']

edu_level_list = [u'中等专业学校或中等技术学校', u'高中', u'研究生', u'小学', u'初中',
                      u'大学专科和专科学校（简称"大专"）', u'大学本科（简称"大学"）', u'文盲或半文盲', u'技术学校']

code_dict = {"10":u"研究生", "20":u'本科', "30":u"大专", "40":u"中专、职高、技校",
             "60":u"高中", "90":u"其他", "91":u"初中及以下", "99":u"未知"}


def getIG04():
    try:
        PB01A = PIMFormat()
        if PB01A == [{}]:
            return u'缺失值'
        else:
            PB01AD02 = PB01A[0].get('PB01AD02')
            if PB01AD02 in null_type_list:
                return u'缺失值'
            else:
                if PB01AD02 == "91":
                    return 1
                elif PB01AD02 == "60" or PB01AD02 == "40":
                    return 2
                elif PB01AD02 == "30":
                    return 3
                elif PB01AD02 == "20" or PB01AD02 == "10":
                    return 4
                else:
                    return u'缺失值'
    except:
        return u'缺失值'

result = getIG04()